@echo off
chcp 65001 >nul
echo ==========================================
echo 百日行动线索收集系统 - Git仓库初始化
echo ==========================================

echo.
echo 🔍 检查Git环境...

:: 检查Git是否安装
git --version >nul 2>&1
if errorlevel 1 (
    echo ❌ Git未安装，请先安装Git
    echo 下载地址: https://git-scm.com/download/win
    pause
    exit /b 1
)
echo ✅ Git已安装

:: 检查是否已经是Git仓库
if exist .git (
    echo ⚠️  当前目录已经是Git仓库
    echo.
    choice /c YN /m "是否重新初始化仓库？(Y/N)"
    if errorlevel 2 goto :skip_init
    
    echo 🗑️  删除现有Git仓库...
    rmdir /s /q .git
)

echo.
echo 🚀 初始化Git仓库...
git init
if errorlevel 1 (
    echo ❌ Git仓库初始化失败
    pause
    exit /b 1
)
echo ✅ Git仓库初始化成功

:skip_init
echo.
echo 📝 配置Git用户信息...

:: 检查全局用户配置
for /f "tokens=*" %%i in ('git config --global user.name 2^>nul') do set "global_name=%%i"
for /f "tokens=*" %%i in ('git config --global user.email 2^>nul') do set "global_email=%%i"

if defined global_name (
    echo 当前全局用户名: %global_name%
) else (
    echo ⚠️  未设置全局用户名
)

if defined global_email (
    echo 当前全局邮箱: %global_email%
) else (
    echo ⚠️  未设置全局邮箱
)

echo.
choice /c YN /m "是否为此项目单独配置用户信息？(Y/N)"
if errorlevel 2 goto :skip_user_config

set /p "project_name=请输入项目用户名: "
set /p "project_email=请输入项目邮箱: "

git config user.name "%project_name%"
git config user.email "%project_email%"
echo ✅ 项目用户信息配置完成

:skip_user_config
echo.
echo 📋 检查项目文件...

:: 检查.gitignore文件
if not exist .gitignore (
    echo ⚠️  .gitignore文件不存在
    choice /c YN /m "是否创建基础.gitignore文件？(Y/N)"
    if errorlevel 1 (
        echo # 百日行动线索收集系统 - Git忽略文件 > .gitignore
        echo. >> .gitignore
        echo # Node.js >> .gitignore
        echo node_modules/ >> .gitignore
        echo *.log >> .gitignore
        echo .env >> .gitignore
        echo. >> .gitignore
        echo # 上传文件 >> .gitignore
        echo uploads/ >> .gitignore
        echo. >> .gitignore
        echo # 临时文件 >> .gitignore
        echo *.tmp >> .gitignore
        echo *.bak >> .gitignore
        echo 编辑* >> .gitignore
        echo. >> .gitignore
        echo # 系统文件 >> .gitignore
        echo Thumbs.db >> .gitignore
        echo .DS_Store >> .gitignore
        echo ✅ 基础.gitignore文件已创建
    )
) else (
    echo ✅ .gitignore文件已存在
)

:: 检查README文件
if not exist README.md (
    echo ⚠️  README.md文件不存在
    choice /c YN /m "是否创建基础README.md文件？(Y/N)"
    if errorlevel 1 (
        echo # 百日行动线索收集系统 > README.md
        echo. >> README.md
        echo 一个面向公众的案情线索收集平台。 >> README.md
        echo. >> README.md
        echo ## 快速开始 >> README.md
        echo. >> README.md
        echo 1. 安装依赖: `cd backend ^&^& npm install` >> README.md
        echo 2. 配置环境: 复制 `.env.example` 为 `.env` >> README.md
        echo 3. 启动服务: `.\启动服务器.bat` >> README.md
        echo ✅ 基础README.md文件已创建
    )
) else (
    echo ✅ README.md文件已存在
)

echo.
echo 📦 添加文件到Git...

:: 添加所有文件
git add .
if errorlevel 1 (
    echo ❌ 添加文件失败
    pause
    exit /b 1
)

:: 显示将要提交的文件
echo.
echo 📋 将要提交的文件:
git status --short

echo.
choice /c YN /m "是否进行初始提交？(Y/N)"
if errorlevel 2 goto :skip_commit

echo.
echo 💾 进行初始提交...
git commit -m "chore: 初始化项目仓库

- 添加项目基础文件
- 配置Git忽略规则
- 创建项目文档结构"

if errorlevel 1 (
    echo ❌ 初始提交失败
    pause
    exit /b 1
)
echo ✅ 初始提交完成

:skip_commit
echo.
echo 🌿 创建开发分支...
git checkout -b develop
if errorlevel 1 (
    echo ⚠️  创建开发分支失败，可能已存在
) else (
    echo ✅ 开发分支创建完成
)

git checkout main
echo ✅ 切换回主分支

echo.
echo 📊 仓库状态:
echo ==========================================
git log --oneline -5
echo ==========================================
git branch -a
echo ==========================================

echo.
echo 🎉 Git仓库初始化完成！
echo.
echo 📚 接下来的步骤:
echo 1. 配置远程仓库: git remote add origin ^<repository-url^>
echo 2. 推送到远程: git push -u origin main
echo 3. 推送开发分支: git push -u origin develop
echo 4. 开始开发: git checkout develop
echo.
echo 📖 更多Git使用方法请参考: Git使用指南.md
echo.

pause 